Skip to content

Recommend JSON object encoding of an attribute collection for non-OTLP#5110

Merged
reyang merged 5 commits into
open-telemetry:mainfrom
pellared:attribute-set-non-otlp
Jun 2, 2026
Merged

Recommend JSON object encoding of an attribute collection for non-OTLP#5110
reyang merged 5 commits into
open-telemetry:mainfrom
pellared:attribute-set-non-otlp

Conversation

@pellared

@pellared pellared commented May 20, 2026

Copy link
Copy Markdown
Member

Follows #5028

Per #5028 (comment):

An attribute set is analogous to a map.

It is not specified anywhere. It a subject for a separate PR as we would need it for open-telemetry/opentelemetry-go#8209. I do not want to open large PRs and I plan to create it once this PR lands.

It will also unblock open-telemetry/opentelemetry-go#8209 (after being stable).

@pellared
pellared marked this pull request as ready for review May 20, 2026 19:39
@pellared
pellared requested review from a team as code owners May 20, 2026 19:39
@pellared
pellared requested a review from Copilot May 20, 2026 19:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds in-development specification guidance for representing a full OpenTelemetry Attribute Collection as a string in non-OTLP protocols, aligning it with the existing non-OTLP JSON guidance for AnyValue and the prior single-Attribute guidance from #5028.

Changes:

  • Promote “Attribute Collections” to a top-level section (fixing heading hierarchy and TOC nesting).
  • Add a new “Attribute Collection representation for non-OTLP” section recommending a JSON object encoding with values following existing non-OTLP AnyValue JSON rules.
  • Record the new guidance in the unreleased changelog under “Common”.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
specification/common/README.md Adds non-OTLP string representation guidance for Attribute Collections and updates section structure/TOC accordingly.
CHANGELOG.md Notes the new in-development guidance in the Unreleased/Common section.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tigrannajaryan tigrannajaryan self-assigned this May 27, 2026
@reyang
reyang added this pull request to the merge queue Jun 2, 2026
Merged via the queue into open-telemetry:main with commit ce627e3 Jun 2, 2026
8 of 9 checks passed
dashpole pushed a commit to dashpole/opentelemetry-specification that referenced this pull request Jun 8, 2026
open-telemetry#5110)

Follows
open-telemetry#5028

Per
open-telemetry#5028 (comment):

>> An attribute set is analogous to a map.
>
> It is not specified anywhere. It a subject for a separate PR as we
would need it for
open-telemetry/opentelemetry-go#8209. I do not
want to open large PRs and I plan to create it once this PR lands.

It will also unblock
open-telemetry/opentelemetry-go#8209 (after
being stable).
@carlosalberto carlosalberto mentioned this pull request Jun 18, 2026
jack-berg pushed a commit to cijothomas/opentelemetry-specification that referenced this pull request Jun 22, 2026
### Context

- Clarify that environment variable propagation carriers normalize
requested
  keys, carrier keys, and returned keys.

([open-telemetry#5102](open-telemetry#5102))
- Specify that environment variable propagation carriers only read and
return
  normalized environment variable names.

([open-telemetry#5144](open-telemetry#5144))
- Specify that an empty environment variable propagation name is
non-normalized
  and normalizes to `_`.

([open-telemetry#5163](open-telemetry#5163))

### Profiles

- Remove duplicate information from and extend Profiles documentation
(README.md, pprof.md).

([open-telemetry#4932](open-telemetry#4932))

### Entities

- Add specification for communicating entity information as structured
log events.

([open-telemetry#4836](open-telemetry#4836))

### Common

- Add an in-development [SDK
self-observability](specification/self-observability.md)
  section, referenced from the Tracing, Metrics, and Logs SDK specs.

([open-telemetry#5087](open-telemetry#5087))
- Clarify non-OTLP representation guidance for nested `AnyValue` values
in
  arrays and maps.

([open-telemetry#5053](open-telemetry#5053))
- Add in-development guidance recommending a JSON object as the string
  representation for an attribute in non-OTLP protocols.

([open-telemetry#5028](open-telemetry#5028))
- Add in-development guidance recommending a JSON object as the string
  representation for an attribute collection in non-OTLP protocols.

([open-telemetry#5110](open-telemetry#5110))

### Compatibility

- Deprecate OpenCensus compatibility requirements in the specification.

([open-telemetry#5138](open-telemetry#5138))
- Stabilize sections of Prometheus Metrics Exporter.
  - Clarify resource attributes configuration.

([open-telemetry#5084](open-telemetry#5084))
- Stabilize the conversion of OTLP Summaries into Prometheus Summaries.

([open-telemetry#5107](open-telemetry#5107))
  - Stabilize client libs section.

([open-telemetry#5106](open-telemetry#5106))
- Stabilize Prometheus Metrics Exporter default aggregation
configuration.

([open-telemetry#5113](open-telemetry#5113))
- Stabilize sections of Prometheus and OpenMetrics Compatibility.
- Stabilize OpenTelemetry Histogram to Prometheus Histogram
transformation.

([open-telemetry#5091](open-telemetry#5091))
- Add optional OpenTelemetry Histogram to Prometheus Native Histogram
with Custom Buckets transformation.

([open-telemetry#5091](open-telemetry#5091))

### SDK Configuration

- Add link to declarative config IdGenerator type

([open-telemetry#5133](open-telemetry#5133))

### OTEPs

- Context-scoped Attributes.

([open-telemetry#4931](open-telemetry#4931))

---------

Co-authored-by: Reiley Yang <reyang@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants